package com.baizhi.exception;//package com.baizhi.exception;
//
//import com.baizhi.vo.R;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.security.core.userdetails.UsernameNotFoundException;
//import org.springframework.validation.BindException;
//import org.springframework.validation.BindingResult;
//import org.springframework.validation.FieldError;
//import org.springframework.web.bind.annotation.ExceptionHandler;
//import org.springframework.web.bind.annotation.RestControllerAdvice;
//
//import javax.validation.ConstraintViolationException;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * @RestControllerAdvice 声明当前类为一个全局异常捕获类
// *
// * 捕获异常之后 有两种处理方式
// * 1.响应Json
// * 2.跳转页面
// */
//@Slf4j
//@RestControllerAdvice
//public class ExceptionControllerAdvice {
//    /**
//     * @ExceptionHandler(ArithmeticException.class)
//     * 定义要捕获哪个异常
//     * 方法的形参是 Exception （或者是被捕获哪个异常）
//     * 只要改方法捕获到异常 会将异常对象传入方法中
//     */
//    @ExceptionHandler(ArithmeticException.class)
//    public R getArithmeticException(Exception e){
//        String message = e.getMessage();
//        return R.error(1000,message);
//    }
//
//    @ExceptionHandler(ConstraintViolationException.class)
//    public R getConstraintViolationException(Exception e){
//        String message = e.getMessage();
//        return R.error(1000,message);
//    }
//
//    @ExceptionHandler(BindException.class)
//    public R getBindException(BindException e){
//        BindingResult result = e.getBindingResult();
//        Map map = new HashMap();
//        for (FieldError fieldError : result.getFieldErrors()) {
//            map.put(fieldError.getField(),fieldError.getDefaultMessage());
//        }
//        return R.error(10086,"参数校验失败").put("data",map);
//    }
//
//    /**
//     * 10002 代表订单模块异常 订单号不存在
//     * 10003 代表订单模块异常 代码报错 未知异常
//     * 10004 代表订单模块异常 查询到多个订单信息
//     * 10010 代表商品模块异常 商品添加失败
//     * 10011 代表商品模块异常 商品查询失败
//     */
//    @ExceptionHandler(OrderException.class)
//    public R getOrderException(Exception e){
//        log.error(e.getMessage());
//        String message = e.getMessage();
//        return R.error(OrderExceptionType.ORDER_NOT_EXIT.getCode(),message);
//    }
//
//    @ExceptionHandler(RuntimeException.class)
//    public R getRuntimeException(Exception e){
//        log.error(e.getMessage());
//        String message = e.getMessage();
//        return R.error(1000,message);
//    }
//
//
//}
